// 引入 jweixin-module
import jweixin from 'weixin-js-sdk';
import api from "@/common/js/api";
export default {
    //判断是否在微信中
    isWechat: function () {
        var ua = window.navigator.userAgent.toLowerCase();
        if (ua.match(/micromessenger/i) == 'micromessenger') {
            //console.log('是微信客户端')
            return true;
        } else {
            //console.log('不是微信客户端')
            return false;
        }
    },

    // 初始化WXSDK
    initJssdk: async function (callback) {
        /* ****************************************
         * 获取当前url然后传递给后台获取授权和签名信息
         # TODO: 后台返回签名
         *************************************** */
        // let uri = encodeURIComponent(window.location.href.split('#')[0]);
        let uri = window.location.href.split('#')[0];

        //返回需要的参数appId,timestamp,noncestr,signature等
        // let timestamp = parseInt(new Date().getTime() / 1000) + '';
        // let nonceStr = Math.random().toString(36).substr(2, 15);

        // 获取后台返回的签名
        // 这里需要换成开发者自己的接口。
        // 此处我对uni.request进行了封装，
        // 直接采用uni.request方法然后在成功的回调里面完成SDK初始化也是可行的，根据实际情况处理
        console.log(uri)
        api.getSignature({
            url:uri
        })
            .then(res =>{
               console.log("z可可"+res+uri)
                //注入config权限配置
                let wxConf = {
                    debug: false,  // 是否开启调试，第一次尝试，建议开启，后续可关闭
                    openTagList:['wx-open-launch-weapp'],  //使用的开放标签列表，目前就两，本项目只用到跳转到小程序
                    appId:res.data.appId,  // 公众号或者服务号的appid,自行前往服务号管理后台查看
                    timestamp:res.data.timestrap,  // 上文计算的时间戳
                    nonceStr:res.data.nonceStr,    // 随机字符串，注意是小驼峰式写法
                    // ticket:res.data.ticket,
                    signature:res.data.signature,  // 回台返回的签名
                    jsApiList: [ //这里是需要用到的接口名称
                        'checkJsApi', //判断当前客户端版本是否支持指定JS接口
                        'onMenuShareAppMessage', //分享接口
                        'getLocation', //获取位置
                        'openLocation', //打开位置
                        'scanQRCode', //扫一扫接口
                        'chooseWXPay', //微信支付
                        'chooseImage', //拍照或从手机相册中选图接口
                        'previewImage', //预览图片接口
                        'uploadImage' //上传图片
                    ]
                };
                jweixin.config(wxConf);   //完成微信配置
                jweixin.ready(res =>{
                    console.log('ready' +res);
                    resolve(jweixin,res)
                })
            })
            .catch((e)=>{
                console.log('获取数据失败1111',e);
            })


    },

    /* ***************************************
     *
     *   微信SDK功能实例：调用微信扫码
     *  若没有初始化需要先调用initJssdk完成初始化
     *  若当前页面已经完成initJssdk初始化，调用扫码功能是可以直接调用 jweixin.scanQRCode
     *
     * **************************************/
    scanCode:function(callback,needResult=1){
        if (!this.isWechat()) {
            console.log('不是微信客户端')
            return;
        }
        this.initJssdk(function (res) {
            jweixin.ready(function () {
                jweixin.scanQRCode({
                    needResult: needResult, // 0扫码结果由微信处理， 1是直接返回结果，由开发者处理
                    scanType: ["qrCode","barCode"],
                    success: function (rs) {
                        console.log(rs);
                        callback(rs)
                    }
                })
            });
        });
    }
}